package builder.actors;

import builder.roles.ConcreteBuilder;

/**
 * @author chj
 * 类名：TextBuilder
 * 类型：具体类
 * 类含义：表示使用纯文本编写文档的对象
 */
public class TextBuilder extends DocumentBuilder implements ConcreteBuilder {
    /**
     * @author chj
     * 属性含义：表示纯文本文档
     */
    private final StringBuffer stringBuffer = new StringBuffer();

    /**
     * @author chj
     * 方法含义：构建纯文本文档的标题
     * @param title 标题
     */
    @Override
    public void makeTitle(String title) {
        stringBuffer.append("====================\n");
        stringBuffer.append("『").append(title).append("』");
        stringBuffer.append("\n");
    }

    /**
     * @author chj
     * 方法含义：构建纯文本文档的字符串
     * @param string 字符串
     */
    @Override
    public void makeString(String string) {
        stringBuffer.append("■").append(string).append("\n");
        stringBuffer.append("\n");
    }

    /**
     * @author chj
     * 方法含义：构建纯文本文档的条目
     * @param items 条目
     */
    @Override
    public void makeItems(String[] items) {
        for (String item : items) {
            stringBuffer.append(" ·").append(item).append("\n");
        }
        stringBuffer.append("\n");
    }

    /**
     * @author chj
     * 方法含义：完成纯文本文档的编写
     */
    @Override
    public void close() {
        stringBuffer.append("====================\n");
    }

    /**
     * @author chj
     * 方法含义：生成纯文本文档
     */
    public String getResult() {
        return stringBuffer.toString();
    }
}
